#include <bits/stdc++.h>
#define SIZE 25
using namespace std;

long long int a[SIZE][SIZE];

long long int dp(int x,int y){
//	cout<<x<<' '<<y<<endl;
//	if(!a[x][y])return 0;
	if(a[x][y]==-1){
		if(x==0){
			a[x][y]=dp(x,y-1);
			return dp(x,y-1);
		}else if(y==0){
			a[x][y]=dp(x-1,y);
			return dp(x-1,y);
		}else a[x][y]=dp(x-1,y)+dp(x,y-1);

	}
	return a[x][y];
}

int main(void){
	int x,y,bx,by;
	for(int i=0;i<SIZE;i++)
		for(int j=0;j<SIZE;j++)
			a[i][j]=-1;
	cin>>bx>>by>>x>>y;
	a[0][0]=1;
	a[x][y]=0;
	if(x-2>=0&&y-1>=0)a[x-2][y-1]=0;
	if(x-2>=0&&y+1<=by)a[x-2][y+1]=0;
	if(x+2<=bx&&y-1>=0)a[x+2][y-1]=0;
	if(x+2<=bx&&y+1<=by)a[x+2][y+1]=0;
	if(x-1>=0&&y-2>=0)a[x-1][y-2]=0;
	if(x-1>=0&&y+2<=by)a[x-1][y+2]=0;
	if(x+1<=bx&&y-2>=0)a[x+1][y-2]=0;
	if(x+1<=bx&&y+2<=by)a[x+1][y+2]=0;
/*
	for(int i=0;i<=bx;i++){
		for(int j=0;j<=by;j++)
			if(a[i][j])cout<<0;
			else cout<<1;
		cout<<endl;
	}
*/
	cout<<dp(bx,by);
	return 0;
}
